# bin => 把任意进制的数转换为二进制，参数必须时一个int型的数据，返回值为str
result = bin(100)
print(result, type(result))

# 十六进制转二进制
print(type(0x100))
result = bin(0x100)
print(result, type(result))
print()

# hex => 把任意进制的数转换为十六进制，参数必须时一个int型的数据，返回值为str
result = hex(100)
print(result, type(result))
print(type(0x100))
result = hex(0x100)
print(result, type(result))
print()
# TypeError: 'float' object cannot be interpreted as an integer
# result = hex(100.0)
# print(result)

# int => 把任意进制的数转换为十进制，可接收 int/float/str(合法的N进制)，返回值为str
result = int(100.1)
print(result, type(result))

# ValueError: invalid literal for int() with base 10: '100.1'
# "100.1" => 十进制字符串，十进制组成只能是0-9，不能有","或者其他
# result = int("100.1")
# print(result, type(result))
result = int("1001")
print(result, type(result))

result = int(0b111)
print(result, type(result))

# base的默认值是10，表示十进制，当参数是一个str类型的数据时
# 先去检查str是不是一个合法的base类型的整数
# 如果合法，转换，不合法报错
result = int("0b111", base=2)
print(result, type(result))

result = int("0o777", base=8)
print(result, type(result))

# 小练习
# 进制转换器
# 输入任意10进制 输出对应的二进制，八进制，十六进制
result = int(input())
print(bin(result), oct(result), hex(result))